草庐IT

C++ STL : Custom sorting one vector based on contents of another

全部标签

【C++ • STL】探究string的源码

文章目录一、深浅拷贝二、传统版写法的string类(简单)三、string类的模拟实现四、现代版写法的string类五、总结ヾ(๑╹◡╹)ノ"人总要为过去的懒惰而付出代价ヾ(๑╹◡╹)ノ"一、深浅拷贝浅拷贝:也称位拷贝,编译器只是将对象中的值拷贝过来。如果对象中管理资源,最后就会导致多个对象共享同一份资源,当一个对象销毁时就会将该资源释放掉,而此时另一些对象不知道该资源已经被释放,以为还有效,所以当继续对资源进项操作时,就会发生发生了访问违规。浅拷贝:(1)析构两次,造成程序崩溃(2)一个对象修改影响另外一个如果一个类中涉及到资源的管理,其拷贝构造函数、赋值运算符重载以及析构函数必须要显式给出

【C++】STL之list深度剖析及模拟实现

目录前言一、list的使用 1、构造函数2、迭代器3、增删查改4、其他函数使用二、list的模拟实现 1、节点的创建 2、push_back和push_front 3、普通迭代器 4、const迭代器 5、增删查改(insert、erase、pop_back、pop_front) 6、构造函数和析构函数 6.1、默认构造 6.2、构造n个val的对象 6.3、拷贝构造 6.4、迭代器区间构造 6.5、 赋值运算符重载 6.6、析构函数三、list模拟实现源代码四、list的迭代器失效五、list和vector的对比前言list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可

【C++】哈希的应用——bitset(STL)位图

哈希的应用——bitset(STL)位图文章目录哈希的应用——bitset(STL)位图一、bitset的介绍1.位图的引入2.位图的概念3.位图的应用二、bitset的使用1.bitset的构造方式2.bitset成员函数的使用3.bitset运算符的使用三、bitset位图的模拟实现1.位图的基本框架2.成员函数2.1.构造函数2.2.setresettest2.3.flipcountsize2.4.noneanyall一、bitset的介绍1.位图的引入看这样一道面试题:给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。【腾讯】单纯从判断一

【c++】 STL的组件简介与容器的使用时机

STL六大组件简介STL提供了六大组件,彼此之间可以组合套用,这六大组件分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。容器:各种数据结构,如vector、list、deque、set、map等,用来存放数据,从实现角度来看,STL容器是一种classtemplate。算法:各种常用的算法,如sort、find、copy、for_each。从实现的角度来看,STL算法是一种functiontempalte.迭代器:扮演了容器与算法之间的胶合剂,共有五种类型,从实现角度来看,迭代器是一种将operator*,operator->,operator++,operator–等指针相

STL-string(ACM)

1.相当于加了一些操作的vector基本操作字符串转换(C++11)//将字符串转换为整型stoi()//将字符串转换为longlongstoll()//将字符串转换为float型stof()//将字符串转换为double型stod()后面加入s+=t;//时间复杂度O(t)s.push_back();字符串替换s.replace(起始位置,替换长度,要替换的字符串)把string类型转换成C的字符串类型s.c_str();使用它之后可以用puts()//比如puts(s.c_str());找字符串(时间复杂度O(s长度*t的长度))(O(n*n))s.find(t,pos)//从pos位置开

23 标准模板库STL之迭代器

概述        迭代器作为STL中的三大组件之一,是容器和算法的粘合剂。迭代器提供了访问容器中元素的方法,每一种容器都提供了自己的迭代器,而这些迭代器向外界隐藏了容器的内部结构。算法使用迭代器访问容器中的元素,不需要关心容器的内部结构。        STL中的迭代器按照功能主要分为以下5种,分别为:InputIterator:输入迭代器,支持对容器元素的逐个遍历和读取。OutputIterator:输出迭代器,支持对容器元素的逐个遍历和写入。ForwardIterator:前向迭代器,支持向前逐个遍历元素,可以对元素进行读取;BidirectionalIterator:双向迭代器,支持向

【C++】STL之适配器---用deque实现栈和队列

目录前言一、deque 1、deque的原理介绍 2、deque的底层结构 3、deque的迭代器 4、deque的优缺点 4.1、优点 4.2、缺点二、stack的介绍和使用 1、stack的介绍 2、stack的使用 3、stack的模拟实现三、queue的介绍和使用 1、queue的介绍  2、queue的使用 3、queue的模拟实现前言 容器适配器,按字面意思理解的话,就是用来对一个容器进行匹配的。在C++STL中,容器有:vector,list,deque,map,set等。而在C++STL中不把stack和queue纳入容器的范围而是纳入容器适配器的范围是因为: stack和qu

推荐:vue-3d-loader支持.dae/.fbx/.gltf/.glb/.obj/.ply/.stl/.json,并支持同一个场景导入多个不同3D模型,支持mtl材质以及jpg/png等图片纹理

我们先让星球大战里面的帝国冲锋队(帝国士兵)给我们摇起来,搞点氛围,嗨起来~LadiesandGentlemen!欢迎来到DJ现场!让我们开始进入vue-3d-loader学习的海洋! Let’sGO!vue-3d-loader是vueJS+threeJS整合的一个3d展示组件。支持.dae/.fbx/.gltf/.glb/.obj/.ply/.stl/.json,并支持同一个场景导入多个不同3D模型,支持mtl材质以及jpg/png等图片纹理vue3请安装2.0.0及以上版本,vue2请安装1.x.x版本功能特性加载单个3D模型同时加载多个3D模型同时加载多个不同类型3D模型加载Draco压

基于 C++ STL 的二进制序列化数据发送,使用套接字进行网络传输,无需使用库

我需要通过网络将一些复杂的对象发送给对等点。我已经为需要序列化的对象中的每个类成员编写代码,使用ostream和operator我有一个Socket类,它将std::string对象转换为C风格的字符串,然后像这样通过套接字发送它们:intSocket::send(conststd::stringgoodies)const{status=::send(socket,goodies.c_str(),goodies.size(),0);returnstatus;}我在接收器中使用的相同Socket类在将传入消息传递给反序列化应用程序之前使用recv()将传入消息放入std::string中

【C++11】{}初始化、std::initializer_list、decltype、STL新增容器

文章目录1.C++11简介2.统一的列表初始化2.1{}初始化2.2std::initializer_list3.声明3.1auto3.2decltype4.nullptr5.范围for循环6.智能指针7.C++11STL中的一些变化8.演示代码1.C++11简介在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1),使得C++03这个名字取代了C++98称为C++11之前的最新C++标准名称。不过由于C++03(TC1)主要是对C++98标准中的漏洞进行修复,语言的核心部分则没有改动,因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11,C++标准10